home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / pfs.h < prev    next >
C/C++ Source or Header  |  1989-06-23  |  2KB  |  70 lines

  1. /*
  2.  * pfs.h --
  3.  *
  4.  * Definitions for pseudo-file-system library routines.  The man page
  5.  * for Pfs has necessary documentation.
  6.  *
  7.  * Copyright 1985, 1988 Regents of the University of California
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software and its documentation for any purpose and without
  10.  * fee is hereby granted, provided that the above copyright
  11.  * notice appear in all copies.  The University of California
  12.  * makes no representations about the suitability of this
  13.  * software for any purpose.  It is provided "as is" without
  14.  * express or implied warranty.
  15.  *
  16.  * $Header: /sprite/src/lib/include/RCS/pfs.h,v 1.4 89/06/23 11:27:48 rab Exp $ SPRITE (Berkeley)
  17.  */
  18.  
  19. #ifndef _PFSLIB
  20. #define _PFSLIB
  21.  
  22. #include <fs.h>
  23. #include <pdev.h>
  24. #include <dev/pfs.h>
  25.  
  26. /*
  27.  * Boolean that can be toggled by applications command line arguments.
  28.  * This causes print statements that trace pfs operations.
  29.  */
  30. extern int pfs_Trace;
  31.  
  32. /*
  33.  * The library keeps a set of callback procedures, one for each pfs request
  34.  * that arrives on the naming request stream.  Fields can be set to NULL to get
  35.  * a default (no-op) handler for the operation.  See the man page for the
  36.  * calling sequence of each call-back procedure.
  37.  */
  38.  
  39. typedef struct {
  40.     int (*open)();        /* PFS_OPEN */
  41.     int (*getAttr)();        /* PFS_GET_ATTR */
  42.     int (*setAttr)();        /* PFS_SET_ATTR */
  43.     int (*makeDevice)();    /* PFS_MAKE_DEVICE */
  44.     int (*makeDir)();        /* PFS_MAKE_DIR */
  45.     int (*remove)();        /* PFS_REMOVE */
  46.     int (*removeDir)();        /* PFS_REMOVE_DIR */
  47.     int (*rename)();        /* PFS_RENAME */
  48.     int (*hardLink)();        /* PFS_HARD_LINK */
  49.     int (*symLink)();        /* PFS_SYM_LINK */
  50.     int (*domainInfo)();    /* PFS_DOMAIN_INFO */
  51. } Pfs_CallBacks;
  52.  
  53. /*
  54.  * A Pfs_Token is returned from the Pfs_Open call.  It is passed
  55.  * back to the Pfs_SetHandler and Pfs_Close calls.
  56.  */
  57.  
  58. typedef char *Pfs_Token;
  59.  
  60. #define PFS_MAGIC    0x4a3b2c1d
  61.  
  62. extern char pfs_ErrorMsg[];
  63.  
  64. extern    Pfs_Token            Pfs_Open();
  65. extern    int               (*Pfs_SetHandler())();
  66. extern    Pdev_Stream           *Pfs_OpenConnection();
  67. extern    int            Pfs_PassFile();
  68. extern    void            Pfs_Close();
  69. #endif /* _PFSLIB */
  70.